      1  import java.util.Scanner;

      2

      3  /**

      4     This program demonstrates the use of mock objects

      5     for testing.

      6  */

      7  public class GradingProgram

      8  {

      9     public static void main(String[] args)

     10     {

     11        IGradeBook gradeBook = new MockGradeBook();

     12        Scanner in = new Scanner(System.in);

     13        boolean done = false;

     14        while (!done)

     15        {

     16           System.out.print("L)oad A)dd aV)erage S)ave Q)uit: ");

     17           String command = in.next().toUpperCase();

     18           if (command.equals("L"))

     19           {

     20              System.out.print("Filename: ");

     21              String filename = in.next();

     22              gradeBook.load(filename);

     23           }

     24           else if (command.equals("S"))

     25           {

     26              System.out.print("Filename: ");

     27              String filename = in.next();

     28              gradeBook.save(filename);

     29           }

     30           else if (command.equals("A"))

     31           {

     32              System.out.print("ID: ");

     33              int id = in.nextInt();

     34              System.out.print("Score: ");

     35              double score = in.nextDouble();

     36              gradeBook.addScore(id, score);

     37           }

     38           else if (command.equals("V"))

     39           {

     40              System.out.print("ID: ");

     41              int id = in.nextInt();

     42              System.out.println("Average for " + id + ": "

     43                 + gradeBook.getAverageScore(id));

     44           }

     45           else if (command.equals("Q"))

     46           {

     47              done = true;

     48           }

     49        }

     50     }

     51  }